// food.js 保存大鱼食物
// Food：食物构造函数
var Food=function(){
	// 添加两个属性分别保存蓝色和橙色图片
	this.orange=null;
	this.blue=null;
	// 添加两个属性分别保存食物位置坐标x和坐标y
	this.x=[];
	this.y=[];
	// 添加一个速度属性
	this.spreed=[];
	// 添加一个食物的状态属性 活动/不活动 true/false
	this.alive=[];
	// 添加一个属性表示食物的宽度（大小）
	this.size=[];
	// 添加一个属性，表示当前食物的类型 橙色/蓝色
	this.foodType=[];   // blue/orange
	// 添加一个属性表示海葵对象的下标
	this.anePoint=[]
}
// 为食物的构造函数添加食物的数量 num=30;
Food.prototype.num=30;
// init函数，初始化食物对象
Food.prototype.init=function(){
	// 创建食物蓝色和橙色图片对象并下载
	this.blue=new Image();
	this.orange=new Image();
	this.blue.src="./img/blue.png";
	this.orange.src="./img/orange.png";
	// 循环遍历所有食物
	for(var i=0;i<this.num;i++){
		// 食物位置 速度 状态 宽度 食物类型 海葵下标
		this.x[i]=0;
		this.y[i]=0;
		this.spreed[i]=0;
		this.alive[i]=false;
		this.size[i]=0;
		this.foodType[i]="blue";
		this.anePoint[i]=0;
	}
}
// draw函数，绘制食物对象
Food.prototype.draw=function(){
	// 循环遍历每个食物
	for(var i=0;i<this.num;i++){
		// 判断当前食物是否活动 
		if(this.alive[i]==true){
			// 判断当前食物是哪张图片
			if(this.foodType[i]=="blue"){
				var pic=this.blue;
			}else{
				var pic=this.orange;
			}
			// 判断食物的宽度（由小到大的变化）
			if(this.size[i]<14){
				this.size[i]+=this.spreed[i]*10;
			}else{
				// 当食物的大小由小到大 14像素的大小就开始向上浮动
				this.y[i]-=this.spreed[i]*20;
			}
			ctx2.drawImage(pic,this.x[i],this.y[i],this.size[i],this.size[i])
			// 如果漂浮出画布将状态修改为false
			if(this.y[i]<0){
				this.alive[i]=false;
			}
		}
	}
}
// 以下三个函数作为一个整体
// 创建监听函数，页面中食物不能少于15个
Food.prototype.foodMonitor=function(){
	// 创建累加的数量 sum，当数量小于15个时，累加sum
	var sum=0;
	// 遍历食物对象，如果食物的状态为true，就开始累加
	for(var i=0;i<this.num;i++){
		if(this.alive[i])sum++;
	}
	// 当sum的值小于15的时候，就挑选一个不活动的食物变为活动的状态
	if(sum<15){
		this.sendFoot()
		// 一次只选一个
		return;
	}
}
// 挑选一个不活动的食物
Food.prototype.sendFoot=function(){
	// 遍历食物对象
	for(var i=0;i<this.num;i++){
		if(this.alive[i]==false){
			// 进行出生
			this.born(i);
			// 返回
			return;
		}
	}
}
// 食物出生
Food.prototype.born=function(i){
	// 修改当前食物的状态为true
	this.alive[i]=true;
	// 当前食物的宽度
	this.size[i]=0;
	// 当前食物的类型，蓝色的较多，黄色的比较少
	this.foodType[i]=Math.random()<0.9?"blue":"orange";
	// 当前食物在哪个海葵对象的头顶出生
	this.anePoint[i]=Math.floor(Math.random()*anemone.num);
	// 当前食物的坐标x，y
	this.x[i]=anemone.destinationX[this.anePoint[i]];
	this.y[i]=anemone.destinationY[this.anePoint[i]];
	// 当前食物的速度
	this.spreed[i]=Math.random()*0.017*3;
}



